#include <linux/module.h> /* Needed by all modules*/
// module_init(text_init);
// module_exit(text_exit);

#include <linux/init.h> /*Needed for __init*/
// static init __init test_init(void) {}


#include <linux/kernel.h> /* Needed for KERN_ALERT*/
// printk(KERNEL_ALERT"Hello world!]n");


#include <linux/fs.h> /*Needed by file operation */
// struct file_operations  struct inode / MINOR,MAJOR 
// function  register_chardev / unregister_chardev


#include <linux/uaccess.h> /* Needed for kernal access user process memory address*/ 
//copy_to_user
//copy_from_user

#include <linux/device.h> /* Needed for sturct of device class */ 
// struct class
// strcut device

#include <linux/slab.h> /*Needed for Memory Allocate */
// kcallock
// kzalloc


#include <linux/delay.h> /*Needed for delay function */ 
// msleep
// mdelay
// udelay


#include <linux/hrtimer> /*Needed for High Precision Event Timer */
// struct hrtimer

#include <linux/jiffies.h> /*  Needed for  system tick time */ 
// extern unsigned long volatile jiffies;
// time_before  time_after  time_before_eq  time_after_eq


#include <linux/timer.h> /* Needed for timer   */ 
// struct timer_list
// init_timer 


#include <linux/proc_fs.h> /* Needed for filesystem constants/structures */ 
// proc_mkdir proc_symlink proc_net_mkdir 
// struct proc_dir_entry

#include <linux/of_platform.h> /* Needed for platform device */ 
// struct of_platform_driver 


#include <linux/of_gpio.h> /* Needed for gpio  parse */ 
// of_get_named_gpio_flags
// of_gpio_cont of_get_gpio 

#include <linux/gpio.h> /*Needed for gpio struct */
// struct gpio 
// gpio_get_value gpio_set_value 
// gpio_to_irq  irq_to_gpio 

#include <linux/platform_device.h> /*Needed for driver model*/ 
// struct platform_device
// platform_device_register/unregister 
// module_platform_driver

#include <linux/err.h> /*Needed for error code information  to point the fail reason*/ 
// ERR_PTR  PTR_ERR IS_ERR

#include <linux/input.h> /*Neeede for struct input_dev */
// struct input_value 
// struct input_dev 


#include <asm/uaccess.h> /*  */ 
//



#include <linux/irq.h>
// struct irq_data


#include <linux/of_irq.h>
// struct of_irq

#include <linux/io.h>
// managed iomap interface

#include <linux;/interrupt.h>
// request_irq

#include <linux/of.h>
// struct device_node 